goog.provide('dkpoints.driver.Driver');

/**
 * @fileoverview
 * dkpoints.driver.Driver is an interface which all drivers (presenters) need
 * to implement.
 */



/**
 * An interface for activity drivers (think "presenter" in MVP pattern).
 * @interface
 */
dkpoints.driver.Driver = goog.abstractMethod;


/**
 * The method that a navigation handler uses to tell the driver to go.
 * @param {Object} params The parameters to configure the driver for this
 *    navigation.
 */
dkpoints.driver.Driver.prototype.handle = goog.abstractMethod;


/**
 * Save state and clear the user interface so the next part of the app can
 * use the screen.
 * @param {function(boolean)} postDisposeHook Callback once disposal is either
 *    complete or cancelled by the user.  Passing true to the callback means
 *    that disposal completed; passing false means that the user opted not to
 *    leave the page.
 */
dkpoints.driver.Driver.prototype.dispose = goog.abstractMethod;


/**
 * return {boolean} Whether or not this driver is disposed (ie. not active).
 */
dkpoints.driver.Driver.prototype.isDisposed = goog.abstractMethod;
